package com.ruoyi.module.domain;

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 试题对象 exam_question
 * 
 * @author ruoyi
 */
public class ExamQuestion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 试题ID */
    private Long id;

    /** 所属试卷ID */
    @Excel(name = "所属试卷ID")
    private Long paperId;

    /** 操作类型 */
    @Excel(name = "操作类型")
    private String opType;

    /** 操作索引 */
    @Excel(name = "操作索引")
    private Integer opIndex;

    /** 操作ID */
    @Excel(name = "操作ID")
    private Long opId;

    /** 分隔符 */
    @Excel(name = "分隔符")
    private String opSeparate;

    /** 题目 */
    @Excel(name = "题目")
    private String opTitle;

    /** 选项列表（JSON格式存储，查询时转换为List） */
    private String opList;

    /** 选项列表（对象形式，不存储） */
    private transient List<String> opListArray;

    /** 排序顺序 */
    @Excel(name = "排序顺序")
    private Integer sortOrder;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPaperId(Long paperId) 
    {
        this.paperId = paperId;
    }

    public Long getPaperId() 
    {
        return paperId;
    }

    public void setOpType(String opType) 
    {
        this.opType = opType;
    }

    public String getOpType() 
    {
        return opType;
    }

    public void setOpIndex(Integer opIndex) 
    {
        this.opIndex = opIndex;
    }

    public Integer getOpIndex() 
    {
        return opIndex;
    }

    public void setOpId(Long opId) 
    {
        this.opId = opId;
    }

    public Long getOpId() 
    {
        return opId;
    }

    public void setOpSeparate(String opSeparate) 
    {
        this.opSeparate = opSeparate;
    }

    public String getOpSeparate() 
    {
        return opSeparate;
    }

    public void setOpTitle(String opTitle) 
    {
        this.opTitle = opTitle;
    }

    public String getOpTitle() 
    {
        return opTitle;
    }

    public void setOpList(String opList) 
    {
        this.opList = opList;
    }

    public String getOpList() 
    {
        return opList;
    }

    public void setOpListArray(List<String> opListArray) 
    {
        this.opListArray = opListArray;
    }

    public List<String> getOpListArray() 
    {
        return opListArray;
    }

    public void setSortOrder(Integer sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public Integer getSortOrder() 
    {
        return sortOrder;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("paperId", getPaperId())
            .append("opType", getOpType())
            .append("opIndex", getOpIndex())
            .append("opId", getOpId())
            .append("opSeparate", getOpSeparate())
            .append("opTitle", getOpTitle())
            .append("opList", getOpList())
            .append("sortOrder", getSortOrder())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}

